package filego

import (
	"fmt"
	"os"
	"github.com/gin-gonic/gin"
	"github.com/go-resty/resty/v2"
	"github.com/spf13/viper"
)
type File struct {
	ip string
	port string
	pass string
	path string
	c *gin.Engine
	s *resty.Client
}

func Init() *File {
	if !exist("config.json") {
		err:=buildconfig()
		if err!=nil{
			fmt.Println(err)
			os.Exit(1)
		}
		fmt.Println("配置文件config.json创建成功,请您更改详细项")
		fmt.Println("ip属性:设置您交互对象的ip,0.0.0.0代表允许所有ip访问")
		fmt.Println("run_port属性:server设置您的服务运行端口,user设置访问服务器的端口,默认13344,")
		fmt.Println("pass属性:设置您的访问密码")
		fmt.Println("path属性:设置您的保存路径,默认./")
		os.Exit(2)
	}
	viper.SetConfigName("config") // 文件名（不带后缀）
    viper.SetConfigType("json")   // 文件类型
    viper.AddConfigPath(".")      // 文件保存路径（当前目录）
	if err := viper.ReadInConfig(); err != nil {
    fmt.Printf("读取配置文件失败: %v\n", err)
    os.Exit(3)
  }

	var file File
	file.ip = viper.GetString("ip")
	file.port = viper.GetString("run_port")
	file.pass = viper.GetString("pass")
	file.path = viper.GetString("path")
	if err := viper.ReadInConfig(); err != nil {
    fmt.Printf("读取配置文件失败: %v\n", err)
    os.Exit(3)
  }

	file.s =nil
	
	
	return &file
}